package org.activitiDdemo;

import org.activiti.engine.*;
import org.activiti.engine.task.Task;
import org.activiti.engine.task.TaskQuery;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.List;

/**
 * Hello world!
 */
public class App2 {

    private static final Logger logger = LoggerFactory.getLogger(App2.class);

    public static void main(String[] args) {
        try {
        //创建流程引擎
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        /// 得到流程存储服务组件
        RepositoryService repositoryService = processEngine.getRepositoryService();
        // 部署流程文件
//        repositoryService.createDeployment().addClasspathResource("bpmn/MyProcess2.bpmn").deploy();
        /// 得到运行时服务组件
        RuntimeService runtimeService = processEngine.getRuntimeService();
        // 启动流程
//        runtimeService.startProcessInstanceByKey("myProcess2");
        // 获取流程任务组件
        TaskService taskService = processEngine.getTaskService();
//        // 查询第一个任务
            TaskQuery myProcess2 = taskService.createTaskQuery().processDefinitionKey("myProcess2").taskCandidateUser("125");
            List<Task> list = myProcess2.list();
            Task task = taskService.createTaskQuery().processDefinitionKey("myProcess2").taskCandidateUser("125").singleResult();
           logger.info("------------"+task.toString());
           //认领任务
//          taskService.claim(task.getId(), "125");
//        //第一个任务完成
//        taskService.complete(task.getId());
//
//        // 查询第二个任务
//        task = taskService.createTaskQuery().singleResult();
//        System.out.println("2---- task.getName() = " + task.getName() + " --- task.getId：" + task.getId());
//        // 完成第二个任务（流程结束）
//        taskService.complete(task.getId());
//
//        task = taskService.createTaskQuery().singleResult();
//
//        System.out.println("流程结束后， 查找任务： " + task);


        }catch (Exception e){
            logger.error(e.getMessage(), e);
        }finally {
            // 退出
            System.exit(0);
        }
    }
}
